package com.ruoyi.common.core.mybatisplus;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.ruoyi.common.core.enums.RecordStatusEnu;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;

import java.time.LocalDateTime;

/**
 * @author zxb
 * @create 2021/8/18
 */
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill .....");
//        this.strictInsertFill(metaObject,"createBy",String.class, getEmpNo());
        this.strictInsertFill(metaObject,"createTime", LocalDateTime.class,LocalDateTime.now());
        this.strictInsertFill(metaObject,"createTime", LocalDateTime.class,LocalDateTime.now());
//        this.strictInsertFill(metaObject,"officeCode",String.class, getOfficeCode());
//        this.strictInsertFill(metaObject,"companyCode",String.class, getCompanyCode());
        this.strictInsertFill(metaObject,"recordStatus",Integer.class, RecordStatusEnu.ENABLE.getValue());
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("update update fill ....");
        this.setFieldValByName("updateTime",LocalDateTime.now(),metaObject);
//        this.setFieldValByName("updateBy", getEmpNo(),metaObject);
//        this.setFieldValByName("companyCode",getCompanyCode(),metaObject);
    }

//    public static SysUserEntity getUserEntity() {
//        try{
//            return (SysUserEntity)SecurityUtils.getSubject().getPrincipal();
//        }catch(Exception e){
//            return null;
//        }
//    }
//
//    public static String getUserId(){
//        SysUserEntity entity = getUserEntity();
//        if(entity == null)return "admin";
//        return entity.getId();
//    }
//
//    public static String getEmpNo(){
//        SysUserEntity entity = getUserEntity();
//        if(entity == null)return "admin";
//        return entity.getEmpNo();
//    }
//
//    public static Integer getMainDeptId(){
//        SysUserEntity entity = getUserEntity();
//        if(entity == null)return null;
//        return entity.getMainDeptId();
//    }
//
//    public static String getOfficeCode(){
//        SysUserEntity entity = getUserEntity();
//        if(entity == null)return null;
//        return entity.getOfficeCode();
//    }
//
//    public static String getCompanyCode(){
//        SysUserEntity entity = getUserEntity();
//        if(entity == null)return "ZUSF";
//        return entity.getCompanyCode();
//    }

}